package arrAndstr;

import java.util.Arrays;

/*
    73.矩阵置零
 */
public class T73 {

    public static void main(String[] args) {
        int[][] matrix = new int[][]{
                {1,1,1},
                {1,0,1},
                {1,1,1}
        };
        setZeroes(matrix);

        for (int i=0; i<matrix.length; i++) {
            for (int j=0; j<matrix[0].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
        }
    }

    public static void setZeroes(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        boolean[][] isZero = new boolean[m][n];
        for (int i=0; i<m; i++) {
            for (int j=0; j<n; j++) {
                isZero[i][j] = false;
            }
        }

        for (int i=0; i<m; i++) {
            for (int j=0; j<n; j++) {
                if (matrix[i][j] == 0) {
                    isZero[i][j] = true;
                }
            }
        }

        for (int i=0; i<m; i++) {
            for (int j=0; j<n; j++) {
                if (isZero[i][j] == true) {
                    startSetZero(matrix, i, j);
                }
            }
        }
    }

    private static void startSetZero(int[][] matrix, int rowIndex, int columnIndex) {
        int row = matrix.length;
        int column = matrix[0].length;
        for(int i=0; i<row; i++) {
            matrix[i][columnIndex] = 0;
        }
        for(int i=0; i<column; i++) {
            matrix[rowIndex][i] = 0;
        }
    }
}
